package controller;

import gui.browse.BrowseListener;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;

import model.Periferico;
import dao.PerifericoDAO;

public class PerifericoController implements ControllerBrowse {

	private static PerifericoController instance;
	private PerifericoDAO perifericoDAO;

	private PerifericoController() {
	}
	
	public static PerifericoController getInstance() {
		if (instance == null) {
			instance = new PerifericoController();
		}
		return instance;
	}
	
	public boolean inserirPeriferico(String descricao) throws Exception {
		Periferico periferico = new Periferico(0, descricao);
		return getPerifericoDAO().inserir(periferico);
	}
	
	public boolean alterarPeriferico(int id, String descricao) throws Exception {
		Periferico periferico = buscarPerifericoPorId(id);
		periferico.setDescricao(descricao);
		return getPerifericoDAO().alterar(periferico);
	}
	
	public boolean excluirPeriferico(int id) throws Exception {
		Periferico periferico = buscarPerifericoPorId(id);
		return getPerifericoDAO().delete(periferico);
	}
	
	public Periferico buscarPerifericoPorId(int id) throws Exception {
		return getPerifericoDAO().buscarPerifericoPorId(id);
	}

	public Collection<Periferico> buscarTodos() throws Exception {
		return getPerifericoDAO().buscarTodos();
	}
	
	public PerifericoDAO getPerifericoDAO() {
		if (perifericoDAO == null){
			perifericoDAO = new PerifericoDAO();
		}
		return perifericoDAO;
	}

	@Override
	public ArrayList<HashMap<String, Object>> buscarDados() throws SQLException {
		return (ArrayList<HashMap<String, Object>>) getPerifericoDAO().buscarDadosPerifericoBrowse();
	}
}